package com.harmony;

/**
 * @Author: harmony
 * @Description: 单例（饿汉式）
 * @DateTime: 2024/6/11 0:09
 **/
public class HarmonyRpcBootstrap {

    private static HarmonyRpcBootstrap harmonyRpcBootstrap = new HarmonyRpcBootstrap();

    private HarmonyRpcBootstrap() {
        // 构造启动引导程序，时需要做一些什么初始化的事
    }

    public static HarmonyRpcBootstrap getInstance() {
        return harmonyRpcBootstrap;
    }

    /**
     * 用于定义应用的名称
     * @param appName 应用名称
     * @return this 当前实例
     */
    public HarmonyRpcBootstrap application(String appName) {
        return this;
    }

    /**
     * 用于配置注册中心
     * @param referenceConfig 注册中心
     * @return this 当前实例
     */
    public HarmonyRpcBootstrap registry(ReferenceConfig referenceConfig) {
        return this;
    }

    /**
     * 配置当前暴露的服务使用的协议
     * @param protocalConfig 注册中心
     * @return this 当前实例
     */
    public HarmonyRpcBootstrap protocol(ProtocalConfig protocalConfig) {
        return this;
    }

    /**
     * 配置当前暴露的服务使用的协议
     * @param protocalConfig 注册中心
     * @return this 当前实例
     */
    public HarmonyRpcBootstrap protocol(ProtocalConfig protocalConfig) {
        return this;
    }

    /**
     * 发布服务
     * @param service 注册中心
     * @return this 当前实例
     */
    public HarmonyRpcBootstrap publish(ServiceConfig<GreetingsService> service) {
        return this;
    }

    /**
     * 启动服务
     */
    public void start() {

    }

}
